/*
 * 文件名: MyTableLayout.java
 * 版    权：  Copyright PingAn Technology All Rights Reserved.
 * 描    述: [该类的简要描述]
 * 创建人: EX-XIAOFANQING001
 * 创建时间: 2011-12-20
 * 
 * 修改人：
 * 修改时间:
 * 修改内容：[修改内容]
 */
package app.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.longevityassistant.activity.R;

/**
 * 公共的Table控件 
 * 该控件会自动套用一个表头一样式
 * 表头样式左边有一个图钉,标题的右边有3个按钮
 * 可以设置按钮的显示与隐藏
 * @author EX-XIAOFANQING001
 * @date 2011-12-20
 * @version [Android PABank C01, @2011-12-20]
 * @description
 */
public class MyTableLayout extends FrameLayout
{

    private LayoutInflater mInflater;
    
    
    private LinearLayout mRoot;
    
    /**
     * Table 的标题
     */
    private TextView tvTitle;
    
    /**
     * Table 的内容容器
     */
    private FrameLayout flContentContainer;
    
    /**
     * 标题栏右边的第一个按钮
     */
    private Button btn1;
    
    /**
     * 标题栏右边的第二个按钮
     */
    private Button btn2;
    
    /**
     * 标题栏右边的第三个按钮
     */
    private Button btn3;

    public MyTableLayout(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        init();
    }

    public MyTableLayout(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        init();
    }

    public MyTableLayout(Context context)
    {
        super(context);
        init();
    }

    /**
     * 初始化控件的操作
     */
    private void init()
    {
        mInflater = LayoutInflater.from(getContext());
        
        mRoot = (LinearLayout) mInflater.inflate(R.layout.app_widget_table_layout, null);
        
        android.view.ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    
        mRoot.setLayoutParams(lp);
        
        removeAllViews();
        
        addView(mRoot);
        
        tvTitle = (TextView) findViewById(R.id.tv_title);
        
        btn1 = (Button) findViewById(R.id.btn_head_buttom1);
        btn2 = (Button) findViewById(R.id.btn_head_button2);
        btn3 = (Button) findViewById(R.id.btn_head_button3);
        
        flContentContainer = (FrameLayout) findViewById(R.id.fl_content_container);
    }

    /**
     * 设置TAB的内容
     * @param content
     */
    public void setContentView(View content)
    {
        LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        content.setLayoutParams(lp);
        flContentContainer.addView(content);
    }
    
    /**
     * 设置Table的标题文字
     * @param text
     */
    public void setTableTitle(String text) 
    {
        tvTitle.setText(text);
    }
    
    /**
     * 设置Table右边第一个按钮的标题文字
     * @param text
     */
    public void setTableHeadBtn1Text(String text) 
    {
        btn1.setText(text);
    }
    
    /**
     * 设置Table右边第二个按钮的标题文字
     * @param text
     */
    public void setTableHeadBtn2Text(String text) 
    {
        btn2.setText(text);
    }
    
    /**
     * 设置Table右边第三个按钮的标题文字
     * @param text
     */
    public void setTableHeadBtn3Text(String text) 
    {
        btn3.setText(text);
    }
    
    /**
     * 设置Table右边第一个按钮是否显示 
     * @param isVisible
     */
    public void setTableHeadBtn1Visible(boolean isVisible) 
    {
        if (isVisible)  {
            btn1.setVisibility(View.VISIBLE);
        } else {
            btn1.setVisibility(View.GONE);
        }
    }
    
    /**
     * 设置Table右边第二个按钮是否显示 
     * @param isVisible
     */
    public void setTableHeadBtn2Visible(boolean isVisible) 
    {
        if (isVisible)  {
            btn2.setVisibility(View.VISIBLE);
        } else {
            btn2.setVisibility(View.GONE);
        }   
    }
    
    /**
     * 设置Table右边第三个按钮是否显示 
     * @param isVisible
     */
    public void setTableHeadBtn3Visible(boolean isVisible) 
    {
        if (isVisible)  {
            btn3.setVisibility(View.VISIBLE);
        } else {
            btn3.setVisibility(View.GONE);
        }
    }
    
    /**
     * 设置Table右边第一个按钮的Click事件监听器
     * @param isVisible
     */
    public void setTableHeadBtn1ClickListener(View.OnClickListener onClickListener)
    {
        btn1.setOnClickListener(onClickListener);
    }
    
    /**
     * 设置Table右边第二个按钮的Click事件监听器
     * @param isVisible
     */
    public void setTableHeadBtn2ClickListener(View.OnClickListener onClickListener)
    {
        btn2.setOnClickListener(onClickListener);
    }
    
    /**
     * 设置Table右边第三个按钮的Click事件监听器
     * @param isVisible
     */
    public void setTableHeadBtn3ClickListener(View.OnClickListener onClickListener)
    {
        btn3.setOnClickListener(onClickListener);
    }
}
